package utils

import (
	"crypto/md5"
	"crypto/sha1"
	"encoding/hex"
	"fmt"
	"io"
	"os"
)

func MD5V(str []byte ) string {
 	h:=md5.New()
 	h.Write(str)
 	return hex.EncodeToString(h.Sum(nil))
}

func SHA1(str []byte)string  {
	h:=sha1.New()
	h.Write(str)
	return hex.EncodeToString(h.Sum(nil))
}

// GetFileMd5 获取文件MD5
func GetFileMd5(filename string) string {
	// 文件全路径名
	pFile, err := os.Open(filename)
	if err != nil {
		_ = fmt.Errorf("打开文件失败，filename=%v, err=%v", filename, err)
		return ""
	}
	defer func(pFile *os.File) {
		_ = pFile.Close()
	}(pFile)
	md5h := md5.New()
	_, _ = io.Copy(md5h, pFile)

	return hex.EncodeToString(md5h.Sum(nil))
}
